Computers have become an integral part of society. Computers may include microprocessors, storage media (e.g., CD-ROM, hard drive, floppy drive), memory, and input/output devices. Software programs running on the computer may coordinate the operation of the microprocessor. While running the programs, the microprocessor may need to write and read information to and from memory.
Memory devices are ubiquitous in numerous fields involving computers and electronics. Traditionally, memory has been implemented with storage elements capable of storing electrical charge. More recently, memory has been implemented with storage elements capable storing magnetic orientation. In general, solid-state magnetic memory arrays include individual storage elements constructed utilizing semiconductor processing techniques. Magnetic memory arrays may have advantages over non-magnetic memory arrays (e.g., DRAM) because, among other things, they do not need to be refreshed.
The individual magnetic elements of the magnetic memory array may include materials with varying magnetic properties separated by an insulating layer. The magnetic fields of the separated materials may be oriented in the same direction (termed “parallel”), or their orientation may be opposite each other (termed “anti-parallel”). The electrical resistance of the magnetic elements may vary depending on the parallel or anti-parallel orientation of the magnetic fields. In this manner, digital information may be stored and retrieved by associating digital values (e.g., 1s and 0s) to the electrical resistance associated with the parallel and anti-parallel states.
To determine the resistance value of a memory element, which effectively determines the digital value contained therein, control circuitry may be used to develop a voltage across the memory element. The control circuitry may use this voltage, or alternately a current derived from this voltage, to estimate the resistance value of the memory element. The digital value stored in the memory element may be determined from the measured resistance value.
Memory elements are often integrated on the same chip as the control circuitry. The cost of manufacturing the chip is directly related to the total chip area (i.e., the area of the array of memory elements and the area of the control circuitry), and in general, larger chips are more costly to manufacture. Because memory is often employed in consumer electronics, low cost memory is desirable. Consequently, in manufacturing low cost memory, the control circuitry is often designed to be as small possible to minimize the area and cost of the chip.
Because consumers dislike waiting while computers and other electronic devices load and unload information, the speed of memory is also important. The speed of memory depends on many factors including how much time it takes to access memory elements, and how much time it takes to read the digital value contained in the memory elements. In order to decrease the access time and decrease the read time of memory, the size and complexity of the control circuitry may need to be increased. However, as mentioned above, this may have a negative impact on the area/cost of the memory. Thus, it may be difficult to design memory that is both fast and cheap because techniques for increasing speed often lead to cost increases and vice versa.